package co.com.coomeva.adminEvaluacion.delegado;

import java.util.List;

import co.com.coomeva.adminEvaluacion.logica.EdUsuarioLogica;
import co.com.coomeva.adminEvaluacion.modelo.entidades.EdPOpcionesMenu;
import co.com.coomeva.adminEvaluacion.modelo.entidades.EdUsuario;
import co.com.coomeva.adminEvaluacion.modelo.entidades.consulta.Consulta;
import co.com.coomeva.profile.ws.client.CaasStub.UserVo;

public class DelegadoUsuario {
	public static EdUsuarioLogica  logica = null;	
	private static DelegadoUsuario delegado = null;
	
	public static DelegadoUsuario getInstance() {
		if(delegado == null){
			delegado = new DelegadoUsuario();
			logica = EdUsuarioLogica.getInstance();
		}
		return delegado;
	}

	public void crearUsuario(String usuarioRed, String consEmpleado,
			Long consEstado, Long consGerencia, Long consUnidadNegocio,
			Long consRol, String usuarioRedSesion) throws Exception {
		logica.crearUsuario(usuarioRed, 
							consEmpleado, 
							consEstado, 
							consGerencia, 
							consUnidadNegocio,
							consRol,
							usuarioRedSesion);
	}

	public List<Consulta> consultarUsuario(String usuarioRed,
			String consEmpleado, Long consEstado, Long consGerencia,
			Long consUnidadNegocio, Long consRol, Long numCedula) throws Exception {
		// TODO Auto-generated method stub
		return logica.consultarUsuario(usuarioRed, consEmpleado, consEstado, consGerencia, consUnidadNegocio, consRol, numCedula);
	}

	public EdUsuario consultarUsuarioPorLogin(String usuarioRed, Long consUnidadNegocio) throws Exception {
		return logica.consultarUsuarioPorLogin(usuarioRed, consUnidadNegocio);
	}

	public void actualizarEstadoUsuario(String usuarioRed, Long consUnidadNegocio, Long consEstado, String usuarioRedSesion) throws Exception {
		logica.actualizarEstadoUsuario(usuarioRed, consUnidadNegocio, consEstado, usuarioRedSesion);
	}

	public void eliminarUsuario(String usuarioRed, Long consUnidadNegocio, String usuarioRedSesion) throws Exception {
		logica.eliminarUsuario(usuarioRed, consUnidadNegocio, usuarioRedSesion);
	}
	
	public UserVo autenticacionProfileManager(String usuarioRed, String password) throws Exception {
		return logica.autenticacionProfileManager(usuarioRed, password);
	}

	public EdUsuario consultarEmpleadoPorLogin(String usuarioRed) throws Exception {
		return logica.consultarEmpleadoPorLogin(usuarioRed);
	}

	public EdUsuario completarDatosUsuario(EdUsuario usuario) throws Exception {
		return logica.completarDatosUsuario(usuario);
	}

	public List<EdPOpcionesMenu> consultarOpcionesUsuario(Long consRol) throws Exception {
		return logica.consultarOpcionesUsuario(consRol);
	}

	public String obtenerNombreAplicacion() {
		return logica.obtenerNombreAplicacion();
	}

	public List<Consulta> consultarUnidadesUsuario(String usuarioRed) throws Exception {
		// TODO Auto-generated method stub
		return logica.consultarUnidadesUsuario(usuarioRed);
	}

	public Long[] obtenerEmpresaYUnidad(Long consUnidadNegocio) throws Exception {
		return logica.obtenerEmpresaYUnidad(consUnidadNegocio);
	}
}
